package org.example.app.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 店铺信息实体类 - 符合实时数仓设计规范
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ShopInfo {
    // 业务主键
    private String shopId;
    private String shopName;
    
    // 维度字段
    private String shopType;     // 官方旗舰店、专营店、专卖店等
    private String categoryId;   // 主营类目
    private String categoryName;
    private String shopLevel;    // 店铺等级
    private String region;       // 所在地区
    
    // 商品相关度量字段
    private Integer productCount;
    private Double avgPrice;
    private Integer onShelfProductCount; // 在售商品数
    
    // 交易相关度量字段
    private Double totalSalesAmount;
    private Long totalSalesVolume;
    private Double currentSalesAmount;
    private Double previousSalesAmount;
    private Double growthRate;
    private Double marketShare;  // 市场份额
    
    // 流量相关度量字段
    private Long visitorCount;
    private Long pageViewCount;
    private Long followerCount;
    private Double conversionRate;
    private Double customerRetentionRate; // 客户留存率
    
    // 实时数仓必需的时间字段
    private Long ts;           // 事件时间戳（毫秒）
    private String stt;        // 窗口开始时间
    private String edt;        // 窗口结束时间
    private String period;     // 统计周期（1h、1d、7d等）
    
    // 数据血缘字段
    private String dataSource; // 数据来源
    private String processTime; // 处理时间
    private Integer version;    // 数据版本
    
    // 排名相关
    private Integer rank;
    private String rankType;   // 排名类型：sales、growth等
}